package com.atguigu.gulimall.order.config;

import feign.Request;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.apache.http.protocol.RequestContent;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.Servlet;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.http.HttpServletRequest;
import java.time.temporal.Temporal;

/**
 * @description:
 * @author: BlueSky
 * @create: 2021-09-30 14:30
 **/

@Configuration
public class GuliFeignConfig {
	@Bean("requestInterceptor")
	public RequestInterceptor requestInterceptor(){
		return new RequestInterceptor() {
			@Override
			public void apply(RequestTemplate template) {
				//1、RequestContextHolder拿到刚进来的请求
				ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
				if (attributes!=null){
					HttpServletRequest request = attributes.getRequest(); //老请求
					//同步请求头数据,Cookie
					String cookie = request.getHeader("Cookie");
					//给新请求同步了老请求的cookie
					template.header("Cookie",cookie);
				}

			}
		};
	}
}
